package com.sunny.fetch.pojo;

import java.util.ArrayList;
import java.util.List;

public class FBoMonthlyExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public FBoMonthlyExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andTidIsNull() {
            addCriterion("tid is null");
            return (Criteria) this;
        }

        public Criteria andTidIsNotNull() {
            addCriterion("tid is not null");
            return (Criteria) this;
        }

        public Criteria andTidEqualTo(Long value) {
            addCriterion("tid =", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotEqualTo(Long value) {
            addCriterion("tid <>", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThan(Long value) {
            addCriterion("tid >", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThanOrEqualTo(Long value) {
            addCriterion("tid >=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThan(Long value) {
            addCriterion("tid <", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThanOrEqualTo(Long value) {
            addCriterion("tid <=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidIn(List<Long> values) {
            addCriterion("tid in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotIn(List<Long> values) {
            addCriterion("tid not in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidBetween(Long value1, Long value2) {
            addCriterion("tid between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotBetween(Long value1, Long value2) {
            addCriterion("tid not between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andDateIsNull() {
            addCriterion("date is null");
            return (Criteria) this;
        }

        public Criteria andDateIsNotNull() {
            addCriterion("date is not null");
            return (Criteria) this;
        }

        public Criteria andDateEqualTo(String value) {
            addCriterion("date =", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateNotEqualTo(String value) {
            addCriterion("date <>", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateGreaterThan(String value) {
            addCriterion("date >", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateGreaterThanOrEqualTo(String value) {
            addCriterion("date >=", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateLessThan(String value) {
            addCriterion("date <", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateLessThanOrEqualTo(String value) {
            addCriterion("date <=", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateLike(String value) {
            addCriterion("date like", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateNotLike(String value) {
            addCriterion("date not like", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateIn(List<String> values) {
            addCriterion("date in", values, "date");
            return (Criteria) this;
        }

        public Criteria andDateNotIn(List<String> values) {
            addCriterion("date not in", values, "date");
            return (Criteria) this;
        }

        public Criteria andDateBetween(String value1, String value2) {
            addCriterion("date between", value1, value2, "date");
            return (Criteria) this;
        }

        public Criteria andDateNotBetween(String value1, String value2) {
            addCriterion("date not between", value1, value2, "date");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("name is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("name is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("name =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("name <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("name >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("name >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("name <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("name <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("name like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("name not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("name in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("name not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("name between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("name not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andListDateIsNull() {
            addCriterion("list_date is null");
            return (Criteria) this;
        }

        public Criteria andListDateIsNotNull() {
            addCriterion("list_date is not null");
            return (Criteria) this;
        }

        public Criteria andListDateEqualTo(String value) {
            addCriterion("list_date =", value, "listDate");
            return (Criteria) this;
        }

        public Criteria andListDateNotEqualTo(String value) {
            addCriterion("list_date <>", value, "listDate");
            return (Criteria) this;
        }

        public Criteria andListDateGreaterThan(String value) {
            addCriterion("list_date >", value, "listDate");
            return (Criteria) this;
        }

        public Criteria andListDateGreaterThanOrEqualTo(String value) {
            addCriterion("list_date >=", value, "listDate");
            return (Criteria) this;
        }

        public Criteria andListDateLessThan(String value) {
            addCriterion("list_date <", value, "listDate");
            return (Criteria) this;
        }

        public Criteria andListDateLessThanOrEqualTo(String value) {
            addCriterion("list_date <=", value, "listDate");
            return (Criteria) this;
        }

        public Criteria andListDateLike(String value) {
            addCriterion("list_date like", value, "listDate");
            return (Criteria) this;
        }

        public Criteria andListDateNotLike(String value) {
            addCriterion("list_date not like", value, "listDate");
            return (Criteria) this;
        }

        public Criteria andListDateIn(List<String> values) {
            addCriterion("list_date in", values, "listDate");
            return (Criteria) this;
        }

        public Criteria andListDateNotIn(List<String> values) {
            addCriterion("list_date not in", values, "listDate");
            return (Criteria) this;
        }

        public Criteria andListDateBetween(String value1, String value2) {
            addCriterion("list_date between", value1, value2, "listDate");
            return (Criteria) this;
        }

        public Criteria andListDateNotBetween(String value1, String value2) {
            addCriterion("list_date not between", value1, value2, "listDate");
            return (Criteria) this;
        }

        public Criteria andAvgPriceIsNull() {
            addCriterion("avg_price is null");
            return (Criteria) this;
        }

        public Criteria andAvgPriceIsNotNull() {
            addCriterion("avg_price is not null");
            return (Criteria) this;
        }

        public Criteria andAvgPriceEqualTo(Float value) {
            addCriterion("avg_price =", value, "avgPrice");
            return (Criteria) this;
        }

        public Criteria andAvgPriceNotEqualTo(Float value) {
            addCriterion("avg_price <>", value, "avgPrice");
            return (Criteria) this;
        }

        public Criteria andAvgPriceGreaterThan(Float value) {
            addCriterion("avg_price >", value, "avgPrice");
            return (Criteria) this;
        }

        public Criteria andAvgPriceGreaterThanOrEqualTo(Float value) {
            addCriterion("avg_price >=", value, "avgPrice");
            return (Criteria) this;
        }

        public Criteria andAvgPriceLessThan(Float value) {
            addCriterion("avg_price <", value, "avgPrice");
            return (Criteria) this;
        }

        public Criteria andAvgPriceLessThanOrEqualTo(Float value) {
            addCriterion("avg_price <=", value, "avgPrice");
            return (Criteria) this;
        }

        public Criteria andAvgPriceIn(List<Float> values) {
            addCriterion("avg_price in", values, "avgPrice");
            return (Criteria) this;
        }

        public Criteria andAvgPriceNotIn(List<Float> values) {
            addCriterion("avg_price not in", values, "avgPrice");
            return (Criteria) this;
        }

        public Criteria andAvgPriceBetween(Float value1, Float value2) {
            addCriterion("avg_price between", value1, value2, "avgPrice");
            return (Criteria) this;
        }

        public Criteria andAvgPriceNotBetween(Float value1, Float value2) {
            addCriterion("avg_price not between", value1, value2, "avgPrice");
            return (Criteria) this;
        }

        public Criteria andMonthAmountIsNull() {
            addCriterion("month_amount is null");
            return (Criteria) this;
        }

        public Criteria andMonthAmountIsNotNull() {
            addCriterion("month_amount is not null");
            return (Criteria) this;
        }

        public Criteria andMonthAmountEqualTo(Float value) {
            addCriterion("month_amount =", value, "monthAmount");
            return (Criteria) this;
        }

        public Criteria andMonthAmountNotEqualTo(Float value) {
            addCriterion("month_amount <>", value, "monthAmount");
            return (Criteria) this;
        }

        public Criteria andMonthAmountGreaterThan(Float value) {
            addCriterion("month_amount >", value, "monthAmount");
            return (Criteria) this;
        }

        public Criteria andMonthAmountGreaterThanOrEqualTo(Float value) {
            addCriterion("month_amount >=", value, "monthAmount");
            return (Criteria) this;
        }

        public Criteria andMonthAmountLessThan(Float value) {
            addCriterion("month_amount <", value, "monthAmount");
            return (Criteria) this;
        }

        public Criteria andMonthAmountLessThanOrEqualTo(Float value) {
            addCriterion("month_amount <=", value, "monthAmount");
            return (Criteria) this;
        }

        public Criteria andMonthAmountIn(List<Float> values) {
            addCriterion("month_amount in", values, "monthAmount");
            return (Criteria) this;
        }

        public Criteria andMonthAmountNotIn(List<Float> values) {
            addCriterion("month_amount not in", values, "monthAmount");
            return (Criteria) this;
        }

        public Criteria andMonthAmountBetween(Float value1, Float value2) {
            addCriterion("month_amount between", value1, value2, "monthAmount");
            return (Criteria) this;
        }

        public Criteria andMonthAmountNotBetween(Float value1, Float value2) {
            addCriterion("month_amount not between", value1, value2, "monthAmount");
            return (Criteria) this;
        }

        public Criteria andListDayIsNull() {
            addCriterion("list_day is null");
            return (Criteria) this;
        }

        public Criteria andListDayIsNotNull() {
            addCriterion("list_day is not null");
            return (Criteria) this;
        }

        public Criteria andListDayEqualTo(Integer value) {
            addCriterion("list_day =", value, "listDay");
            return (Criteria) this;
        }

        public Criteria andListDayNotEqualTo(Integer value) {
            addCriterion("list_day <>", value, "listDay");
            return (Criteria) this;
        }

        public Criteria andListDayGreaterThan(Integer value) {
            addCriterion("list_day >", value, "listDay");
            return (Criteria) this;
        }

        public Criteria andListDayGreaterThanOrEqualTo(Integer value) {
            addCriterion("list_day >=", value, "listDay");
            return (Criteria) this;
        }

        public Criteria andListDayLessThan(Integer value) {
            addCriterion("list_day <", value, "listDay");
            return (Criteria) this;
        }

        public Criteria andListDayLessThanOrEqualTo(Integer value) {
            addCriterion("list_day <=", value, "listDay");
            return (Criteria) this;
        }

        public Criteria andListDayIn(List<Integer> values) {
            addCriterion("list_day in", values, "listDay");
            return (Criteria) this;
        }

        public Criteria andListDayNotIn(List<Integer> values) {
            addCriterion("list_day not in", values, "listDay");
            return (Criteria) this;
        }

        public Criteria andListDayBetween(Integer value1, Integer value2) {
            addCriterion("list_day between", value1, value2, "listDay");
            return (Criteria) this;
        }

        public Criteria andListDayNotBetween(Integer value1, Integer value2) {
            addCriterion("list_day not between", value1, value2, "listDay");
            return (Criteria) this;
        }

        public Criteria andPPcIsNull() {
            addCriterion("p_pc is null");
            return (Criteria) this;
        }

        public Criteria andPPcIsNotNull() {
            addCriterion("p_pc is not null");
            return (Criteria) this;
        }

        public Criteria andPPcEqualTo(Integer value) {
            addCriterion("p_pc =", value, "pPc");
            return (Criteria) this;
        }

        public Criteria andPPcNotEqualTo(Integer value) {
            addCriterion("p_pc <>", value, "pPc");
            return (Criteria) this;
        }

        public Criteria andPPcGreaterThan(Integer value) {
            addCriterion("p_pc >", value, "pPc");
            return (Criteria) this;
        }

        public Criteria andPPcGreaterThanOrEqualTo(Integer value) {
            addCriterion("p_pc >=", value, "pPc");
            return (Criteria) this;
        }

        public Criteria andPPcLessThan(Integer value) {
            addCriterion("p_pc <", value, "pPc");
            return (Criteria) this;
        }

        public Criteria andPPcLessThanOrEqualTo(Integer value) {
            addCriterion("p_pc <=", value, "pPc");
            return (Criteria) this;
        }

        public Criteria andPPcIn(List<Integer> values) {
            addCriterion("p_pc in", values, "pPc");
            return (Criteria) this;
        }

        public Criteria andPPcNotIn(List<Integer> values) {
            addCriterion("p_pc not in", values, "pPc");
            return (Criteria) this;
        }

        public Criteria andPPcBetween(Integer value1, Integer value2) {
            addCriterion("p_pc between", value1, value2, "pPc");
            return (Criteria) this;
        }

        public Criteria andPPcNotBetween(Integer value1, Integer value2) {
            addCriterion("p_pc not between", value1, value2, "pPc");
            return (Criteria) this;
        }

        public Criteria andWomIndexIsNull() {
            addCriterion("wom_index is null");
            return (Criteria) this;
        }

        public Criteria andWomIndexIsNotNull() {
            addCriterion("wom_index is not null");
            return (Criteria) this;
        }

        public Criteria andWomIndexEqualTo(Float value) {
            addCriterion("wom_index =", value, "womIndex");
            return (Criteria) this;
        }

        public Criteria andWomIndexNotEqualTo(Float value) {
            addCriterion("wom_index <>", value, "womIndex");
            return (Criteria) this;
        }

        public Criteria andWomIndexGreaterThan(Float value) {
            addCriterion("wom_index >", value, "womIndex");
            return (Criteria) this;
        }

        public Criteria andWomIndexGreaterThanOrEqualTo(Float value) {
            addCriterion("wom_index >=", value, "womIndex");
            return (Criteria) this;
        }

        public Criteria andWomIndexLessThan(Float value) {
            addCriterion("wom_index <", value, "womIndex");
            return (Criteria) this;
        }

        public Criteria andWomIndexLessThanOrEqualTo(Float value) {
            addCriterion("wom_index <=", value, "womIndex");
            return (Criteria) this;
        }

        public Criteria andWomIndexIn(List<Float> values) {
            addCriterion("wom_index in", values, "womIndex");
            return (Criteria) this;
        }

        public Criteria andWomIndexNotIn(List<Float> values) {
            addCriterion("wom_index not in", values, "womIndex");
            return (Criteria) this;
        }

        public Criteria andWomIndexBetween(Float value1, Float value2) {
            addCriterion("wom_index between", value1, value2, "womIndex");
            return (Criteria) this;
        }

        public Criteria andWomIndexNotBetween(Float value1, Float value2) {
            addCriterion("wom_index not between", value1, value2, "womIndex");
            return (Criteria) this;
        }

        public Criteria andMRatioIsNull() {
            addCriterion("m_ratio is null");
            return (Criteria) this;
        }

        public Criteria andMRatioIsNotNull() {
            addCriterion("m_ratio is not null");
            return (Criteria) this;
        }

        public Criteria andMRatioEqualTo(Float value) {
            addCriterion("m_ratio =", value, "mRatio");
            return (Criteria) this;
        }

        public Criteria andMRatioNotEqualTo(Float value) {
            addCriterion("m_ratio <>", value, "mRatio");
            return (Criteria) this;
        }

        public Criteria andMRatioGreaterThan(Float value) {
            addCriterion("m_ratio >", value, "mRatio");
            return (Criteria) this;
        }

        public Criteria andMRatioGreaterThanOrEqualTo(Float value) {
            addCriterion("m_ratio >=", value, "mRatio");
            return (Criteria) this;
        }

        public Criteria andMRatioLessThan(Float value) {
            addCriterion("m_ratio <", value, "mRatio");
            return (Criteria) this;
        }

        public Criteria andMRatioLessThanOrEqualTo(Float value) {
            addCriterion("m_ratio <=", value, "mRatio");
            return (Criteria) this;
        }

        public Criteria andMRatioIn(List<Float> values) {
            addCriterion("m_ratio in", values, "mRatio");
            return (Criteria) this;
        }

        public Criteria andMRatioNotIn(List<Float> values) {
            addCriterion("m_ratio not in", values, "mRatio");
            return (Criteria) this;
        }

        public Criteria andMRatioBetween(Float value1, Float value2) {
            addCriterion("m_ratio between", value1, value2, "mRatio");
            return (Criteria) this;
        }

        public Criteria andMRatioNotBetween(Float value1, Float value2) {
            addCriterion("m_ratio not between", value1, value2, "mRatio");
            return (Criteria) this;
        }

        public Criteria andRankIsNull() {
            addCriterion("rank is null");
            return (Criteria) this;
        }

        public Criteria andRankIsNotNull() {
            addCriterion("rank is not null");
            return (Criteria) this;
        }

        public Criteria andRankEqualTo(Integer value) {
            addCriterion("rank =", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankNotEqualTo(Integer value) {
            addCriterion("rank <>", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankGreaterThan(Integer value) {
            addCriterion("rank >", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankGreaterThanOrEqualTo(Integer value) {
            addCriterion("rank >=", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankLessThan(Integer value) {
            addCriterion("rank <", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankLessThanOrEqualTo(Integer value) {
            addCriterion("rank <=", value, "rank");
            return (Criteria) this;
        }

        public Criteria andRankIn(List<Integer> values) {
            addCriterion("rank in", values, "rank");
            return (Criteria) this;
        }

        public Criteria andRankNotIn(List<Integer> values) {
            addCriterion("rank not in", values, "rank");
            return (Criteria) this;
        }

        public Criteria andRankBetween(Integer value1, Integer value2) {
            addCriterion("rank between", value1, value2, "rank");
            return (Criteria) this;
        }

        public Criteria andRankNotBetween(Integer value1, Integer value2) {
            addCriterion("rank not between", value1, value2, "rank");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}